﻿using System;
using System.Data;
using System.Collections.Generic;
using Chenxin.Lib.Hr.Entity;

namespace Chenxin.Lib.Hr.BLL
{
    //****************************************************************
    //   臣信二手房
    //   Copyright (c) 2010 Chenxin.                        
    //****************************************************************
    //****************************************************************      
    //作成者       :  he.jifeng   
    //创建日期     :  2010-03-03                 
    //確認者       :  確認者          
    //功能概要　   :  角色，角色权限关系表的操作
    //****************************************************************
    public class Role_RolePermitionRelation
    {
        //*******************************************
        //功能概要       ：添加角色，角色权限关系表
        //参数説明       ：strRoleName 角色名
        //               ：strCityId 城市Id
        //               ：strLsPermits 权限列表字符串
        //返回值説明     ：序列化结果
        //功能詳細       ：添加角色，角色权限关系表
        //作成者         ：he.jifeng
        //作成日         ：2010-03-03
        //*******************************************
        public void addRoleAndRolePermitRelation(string strRoleName, Guid gdCityId, string strLsPermits)
        {
            //角色的业务处理类
            Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine bllBasePermitRoleDefine = new Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine();
            //角色权限业务处理类
            Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo bllBaseRolePermitionRelationInfo = new Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo();
            //角色Model类
            Chenxin.Lib.Hr.Entity.Base_Permit_RoleDefine entBasePermitRoleDefine = new Chenxin.Lib.Hr.Entity.Base_Permit_RoleDefine();
            //角色权限Mode类
            Chenxin.Lib.Hr.Entity.Base_RolePermitionRelationInfo entBaseRolePermitionRelationInfo;

            //角色ID
            entBasePermitRoleDefine.RoleId = Guid.NewGuid();
            //角色名
            entBasePermitRoleDefine.RoleName = strRoleName;
            //城市Id
            entBasePermitRoleDefine.CityId = gdCityId;

            //插入角色数据
            bllBasePermitRoleDefine.Add(entBasePermitRoleDefine);
            //不为空
            if (strLsPermits != "")
            {
                //按@分割
                string[] lsPermits = strLsPermits.Split(new char[]{'@'});
                
                //循环权限列表
                for (int idxCnt = 0; idxCnt < lsPermits.Length - 1; idxCnt++)
                {
                    entBaseRolePermitionRelationInfo = new Chenxin.Lib.Hr.Entity.Base_RolePermitionRelationInfo();
                    //记录Id
                    entBaseRolePermitionRelationInfo.RecordId = Guid.NewGuid();
                    //角色Id
                    entBaseRolePermitionRelationInfo.RoleId = entBasePermitRoleDefine.RoleId;
                    //权限Id
                    entBaseRolePermitionRelationInfo.PermitId = new Guid(lsPermits[idxCnt]);
                    //角色权限关系数据插入
                    bllBaseRolePermitionRelationInfo.Add(entBaseRolePermitionRelationInfo);
                }
            }
           
        }

        //*******************************************
        //功能概要       ：编辑角色，角色权限关系表
        //参数説明       ：gdRoleId 角色Id
        //               ：strRoleName 角色名
        //               ：strCityId 城市Id
        //               ：strLsPermits 权限列表字符串
        //返回值説明     ：序列化结果
        //功能詳細       ：编辑角色，角色权限关系表
        //作成者         ：he.jifeng
        //作成日         ：2010-03-03
        //*******************************************
        public void editRoleAndRolePermitRelation(Guid gdRoleId, string strRoleName, Guid gdCityId, string strLsPermits)
        {
            //角色的业务处理类
            Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine bllBasePermitRoleDefine = new Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine();
            //角色权限业务处理类
            Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo bllBaseRolePermitionRelationInfo = new Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo();
            //角色Model类
            Chenxin.Lib.Hr.Entity.Base_Permit_RoleDefine entBasePermitRoleDefine = new Chenxin.Lib.Hr.Entity.Base_Permit_RoleDefine();
            //角色权限Mode类
            Chenxin.Lib.Hr.Entity.Base_RolePermitionRelationInfo entBaseRolePermitionRelationInfo;

            //角色ID
            entBasePermitRoleDefine.RoleId = gdRoleId;
            //角色名
            entBasePermitRoleDefine.RoleName = strRoleName;
            //城市Id
            entBasePermitRoleDefine.CityId = gdCityId;
            //更新角色
            bllBasePermitRoleDefine.Update(entBasePermitRoleDefine);

            //删除当前角色的权限
            bllBaseRolePermitionRelationInfo.DeleteByRoleId(gdRoleId);

            //不为空
            if (strLsPermits != "")
            {
                //按@分割
                string[] lsPermits = strLsPermits.Split(new char[] { '@' });

                //循环权限列表
                for (int idxCnt = 0; idxCnt < lsPermits.Length - 1; idxCnt++)
                {
                    entBaseRolePermitionRelationInfo = new Chenxin.Lib.Hr.Entity.Base_RolePermitionRelationInfo();
                    //记录Id
                    entBaseRolePermitionRelationInfo.RecordId = Guid.NewGuid();
                    //角色Id
                    entBaseRolePermitionRelationInfo.RoleId = entBasePermitRoleDefine.RoleId;
                    //权限Id
                    entBaseRolePermitionRelationInfo.PermitId = new Guid(lsPermits[idxCnt]);
                    //角色权限关系数据插入
                    bllBaseRolePermitionRelationInfo.Add(entBaseRolePermitionRelationInfo);
                }
            }
        }

        //*******************************************
        //功能概要       ：删除角色，角色权限关系表
        //参数説明       ：strRoleId 角色Id
        //返回值説明     ：序列化结果
        //功能詳細       ：删除角色，角色权限关系表
        //作成者         ：he.jifeng
        //作成日         ：2010-03-03
        //*******************************************
        public void delRoleAndRolePermitRelation(Guid gdRoleId)
        {
            //角色的业务处理类
            Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine bllBasePermitRoleDefine = new Chenxin.Lib.Hr.BLL.Base_Permit_RoleDefine();
            //角色权限业务处理类
            Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo bllBaseRolePermitionRelationInfo = new Chenxin.Lib.Hr.BLL.Base_RolePermitionRelationInfo();

            //删除角色
            bllBasePermitRoleDefine.Delete(gdRoleId);
            //删除角色下的权限列表
            bllBaseRolePermitionRelationInfo.DeleteByRoleId(gdRoleId);
        }
    }
}
